parameter   DDRA_ECC_ENABLE          = 1     , 
parameter   DDRA_DATA_MASK_ENABLE    = 0     ,                                                                                     
parameter   DDRA_GRP0_USER_NUM       = 2     ,                                                                                     
parameter   DDRA_GRP1_USER_NUM       = 2     ,                                                                                     
parameter   DDRA_USER_TYPE_BW        = 4     ,                                                                                     
parameter   DDRA_USER_LEN_BW         = 8     ,                                                                                     
parameter   DDRA_USER_ORDER_LEN      = 4     ,                                                                                     
parameter   DDRA_USER_BP_ENABLE      = 1     ,                                                                                     
parameter   DDRA_USER_CFIFO_DPH_BW   = 5     ,                                                                                      
parameter   DDRA_USER_DFIFO_DPH_BW   = DDRA_USER_LEN_BW + 1     ,                                                                   
parameter   DDRA_USER_CFIFO_AFULL_OVFL_THD   = 2**DDRA_USER_CFIFO_DPH_BW - 15  ,
parameter   DDRA_USER_DFIFO_AFULL_OVFL_THD   = 2**DDRA_USER_LEN_BW    ,                                                             
parameter   DDRA_COL_WIDTH           = 10    ,                                                                                      
parameter   DDRA_ROW_WIDTH           = 16    ,                                                                                      
parameter   DDRA_BA_WIDTH            = 2     ,                                                                                      
parameter   DDRA_BG_WIDTH            = 2     ,                                                                                      
parameter   DDRA_ADDR_WIDTH          = 17    ,
parameter   DDRA_CKE_WIDTH           = 2     ,
parameter   DDRA_CK_WIDTH            = 1     ,
parameter   DDRA_CS_WIDTH            = 2     ,
parameter   DDRA_ODT_WIDTH           = 2     ,
parameter   DDRA_DQ_WIDTH            = 64    ,
parameter   DDRA_DM_WIDTH            = DDRA_DQ_WIDTH/8,
parameter	DDRA_ECC_DQ_WIDTH        = 8     ,                                                                                      
parameter	DDRA_ECC_DM_WIDTH        = DDRA_ECC_DQ_WIDTH/8,                                                                         
parameter   DDRA_USER_DATA_BW        = DDRA_DQ_WIDTH*8 ,                                                                            
parameter   DDRA_USER_MASK_BW        = DDRA_DM_WIDTH*8    ,                                                                         
parameter   DDRA_USER_WDATA_BW       = (DDRA_DATA_MASK_ENABLE == 1) ? (DDRA_USER_MASK_BW+DDRA_USER_DATA_BW) : DDRA_USER_DATA_BW ,   
parameter   DDRA_USER_RDATA_BW       = DDRA_USER_DATA_BW+DDRA_USER_ORDER_LEN+6 ,                                                    
parameter   DDRA_USER_ADDR_BW        = DDRA_ROW_WIDTH+DDRA_BA_WIDTH+DDRA_COL_WIDTH-3+DDRA_BG_WIDTH,
parameter   DDRA_USER_CMD_BW         = DDRA_USER_ORDER_LEN+DDRA_USER_ADDR_BW+DDRA_USER_LEN_BW+DDRA_USER_TYPE_BW,                    
parameter   DDRA_GRP0_CMD_VECTOR_BW  = DDRA_USER_CMD_BW*DDRA_GRP0_USER_NUM,
parameter   DDRA_GRP1_CMD_VECTOR_BW  = DDRA_USER_CMD_BW*DDRA_GRP1_USER_NUM,
parameter   DDRA_GRP0_DATA_VECTOR_BW = DDRA_USER_WDATA_BW*DDRA_GRP0_USER_NUM,
parameter   DDRA_TOTAL_DQ_WIDTH      = (DDRA_ECC_ENABLE == 1) ? (DDRA_DQ_WIDTH+DDRA_ECC_DQ_WIDTH) : DDRA_DQ_WIDTH,
parameter   DDRA_TOTAL_DM_WIDTH      = (DDRA_ECC_ENABLE == 1) ? (DDRA_DM_WIDTH+DDRA_ECC_DM_WIDTH) : DDRA_DM_WIDTH,

parameter   DDRB_ECC_ENABLE          = 1     ,
parameter   DDRB_DATA_MASK_ENABLE    = 0     ,                                                                                      
parameter   DDRB_GRP0_USER_NUM       = 2     ,                                                                                      
parameter   DDRB_GRP1_USER_NUM       = 2     ,                                                                                      
parameter   DDRB_USER_TYPE_BW        = 4     ,                                                                                      
parameter   DDRB_USER_LEN_BW         = 8     ,                                                                                      
parameter   DDRB_USER_ORDER_LEN      = 4     ,                                                                                      
parameter   DDRB_USER_BP_ENABLE      = 1     ,                                                                                      
parameter   DDRB_USER_CFIFO_DPH_BW   = 5     ,                                                                                      
parameter   DDRB_USER_DFIFO_DPH_BW   = DDRB_USER_LEN_BW + 1     ,                                                                   
parameter   DDRB_USER_CFIFO_AFULL_OVFL_THD   = 2**DDRB_USER_CFIFO_DPH_BW - 15  ,
parameter   DDRB_USER_DFIFO_AFULL_OVFL_THD   = 2**DDRB_USER_LEN_BW    ,                                                             
parameter   DDRB_COL_WIDTH           = 10    ,                                                                                      
parameter   DDRB_ROW_WIDTH           = 16    ,                                                                                      
parameter   DDRB_BA_WIDTH            = 2     ,                                                                                      
parameter   DDRB_BG_WIDTH            = 2     ,                                                                                      
parameter   DDRB_ADDR_WIDTH          = 17    ,
parameter   DDRB_CKE_WIDTH           = 2     ,
parameter   DDRB_CK_WIDTH            = 1     ,
parameter   DDRB_CS_WIDTH            = 2     ,
parameter   DDRB_ODT_WIDTH           = 2     ,
parameter   DDRB_DQ_WIDTH            = 64    ,
parameter   DDRB_DM_WIDTH            = DDRB_DQ_WIDTH/8,
parameter   DDRB_ECC_DQ_WIDTH        = 8     ,                                                                                      
parameter   DDRB_ECC_DM_WIDTH        = DDRB_ECC_DQ_WIDTH/8,                                                                         
parameter   DDRB_USER_DATA_BW        = DDRB_DQ_WIDTH*8 ,                                                                            
parameter   DDRB_USER_MASK_BW        = DDRB_DM_WIDTH*8 ,                                                                            
parameter   DDRB_USER_WDATA_BW       = (DDRB_DATA_MASK_ENABLE == 1) ? (DDRB_USER_MASK_BW+DDRB_USER_DATA_BW) : DDRB_USER_DATA_BW ,   
parameter   DDRB_USER_RDATA_BW       = DDRB_USER_DATA_BW+DDRB_USER_ORDER_LEN+6 ,                                                    
parameter   DDRB_USER_ADDR_BW        = DDRB_ROW_WIDTH+DDRB_BA_WIDTH+DDRB_COL_WIDTH-3+DDRB_BG_WIDTH,
parameter   DDRB_USER_CMD_BW         = DDRB_USER_ORDER_LEN+DDRB_USER_ADDR_BW+DDRB_USER_LEN_BW+DDRB_USER_TYPE_BW,                    
parameter   DDRB_GRP0_CMD_VECTOR_BW  = DDRB_USER_CMD_BW*DDRB_GRP0_USER_NUM,
parameter   DDRB_GRP1_CMD_VECTOR_BW  = DDRB_USER_CMD_BW*DDRB_GRP1_USER_NUM,
parameter   DDRB_GRP0_DATA_VECTOR_BW = DDRB_USER_WDATA_BW*DDRB_GRP0_USER_NUM,
parameter   DDRB_TOTAL_DQ_WIDTH      = (DDRB_ECC_ENABLE == 1) ? (DDRB_DQ_WIDTH+DDRB_ECC_DQ_WIDTH) : DDRB_DQ_WIDTH,
parameter   DDRB_TOTAL_DM_WIDTH      = (DDRB_ECC_ENABLE == 1) ? (DDRB_DM_WIDTH+DDRB_ECC_DM_WIDTH) : DDRB_DM_WIDTH,

parameter   DDRD_ECC_ENABLE          = 1     ,
parameter   DDRD_DATA_MASK_ENABLE    = 0     ,                                                                                      
parameter   DDRD_GRP0_USER_NUM       = 2     ,                                                                                      
parameter   DDRD_GRP1_USER_NUM       = 2     ,                                                                                      
parameter   DDRD_USER_TYPE_BW        = 4     ,                                                                                      
parameter   DDRD_USER_LEN_BW         = 8     ,                                                                                      
parameter   DDRD_USER_ORDER_LEN      = 4     ,                                                                                      
parameter   DDRD_USER_BP_ENABLE      = 1     ,                                                                                      
parameter   DDRD_USER_CFIFO_DPH_BW   = 5     ,                                                                                      
parameter   DDRD_USER_DFIFO_DPH_BW   = DDRD_USER_LEN_BW + 1     ,                                                                   
parameter   DDRD_USER_CFIFO_AFULL_OVFL_THD   = 2**DDRD_USER_CFIFO_DPH_BW - 15  ,
parameter   DDRD_USER_DFIFO_AFULL_OVFL_THD   = 2**DDRD_USER_LEN_BW,                                                                 
parameter   DDRD_COL_WIDTH           = 10    ,                                                                                      
parameter   DDRD_ROW_WIDTH           = 16    ,                                                                                      
parameter   DDRD_BA_WIDTH            = 2     ,                                                                                      
parameter   DDRD_BG_WIDTH            = 2     ,                                                                                      
parameter   DDRD_ADDR_WIDTH          = 17    ,
parameter   DDRD_CKE_WIDTH           = 2     ,
parameter   DDRD_CK_WIDTH            = 1     ,
parameter   DDRD_CS_WIDTH            = 2     ,
parameter   DDRD_ODT_WIDTH           = 2     ,
parameter   DDRD_DQ_WIDTH            = 64    ,
parameter   DDRD_DM_WIDTH            = DDRD_DQ_WIDTH/8,
parameter   DDRD_ECC_DQ_WIDTH        = 8     ,                                                                                      
parameter   DDRD_ECC_DM_WIDTH        = DDRD_ECC_DQ_WIDTH/8,                                                                         
parameter   DDRD_USER_DATA_BW        = DDRD_DQ_WIDTH*8 ,                                                                           
parameter   DDRD_USER_MASK_BW        = DDRD_DM_WIDTH*8 ,                                                                           
parameter   DDRD_USER_WDATA_BW       = (DDRD_DATA_MASK_ENABLE == 1) ? (DDRD_USER_MASK_BW+DDRD_USER_DATA_BW) : DDRD_USER_DATA_BW ,  
parameter   DDRD_USER_RDATA_BW       = DDRD_USER_DATA_BW+DDRD_USER_ORDER_LEN+6 ,                                                  
parameter   DDRD_USER_ADDR_BW        = DDRD_ROW_WIDTH+DDRD_BA_WIDTH+DDRD_COL_WIDTH-3+DDRD_BG_WIDTH,
parameter   DDRD_USER_CMD_BW         = DDRD_USER_ORDER_LEN+DDRD_USER_ADDR_BW+DDRD_USER_LEN_BW+DDRD_USER_TYPE_BW,                  
parameter   DDRD_GRP0_CMD_VECTOR_BW  = DDRD_USER_CMD_BW*DDRD_GRP0_USER_NUM,
parameter   DDRD_GRP1_CMD_VECTOR_BW  = DDRD_USER_CMD_BW*DDRD_GRP1_USER_NUM,
parameter   DDRD_GRP0_DATA_VECTOR_BW = DDRD_USER_WDATA_BW*DDRD_GRP0_USER_NUM,
parameter   DDRD_TOTAL_DQ_WIDTH      = (DDRD_ECC_ENABLE == 1) ? (DDRD_DQ_WIDTH+DDRD_ECC_DQ_WIDTH) : DDRD_DQ_WIDTH,
parameter   DDRD_TOTAL_DM_WIDTH      = (DDRD_ECC_ENABLE == 1) ? (DDRD_DM_WIDTH+DDRD_ECC_DM_WIDTH) : DDRD_DM_WIDTH,
